Move local and remote project skills to use RepoMetadataModel#11559
Conversation
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR moves project skill discovery from provider directories to concrete SKILL.md files returned by RepoMetadataModel, adding remote-path-aware discovery helpers while keeping local hydration in the watcher.
Concerns
- Queued project directory handling now treats unrelated directory creations under a skill's owning repo/subtree as relevant to existing skills, which can re-emit already loaded skills whenever ordinary directories are created.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR moves project skill discovery from the local project watcher/subscriber path onto RepoMetadataModel, adds file-based skill discovery helpers, and teaches repo metadata to eagerly load ignored skill provider paths.
Concerns
- Remote project skill paths are discovered as
LocalOrRemotePath::Remotebut then filtered throughto_local_path()before parsing, so remote repository updates still emit no project skills. - Removing the separate local project watcher also removes the code path that handled symlinked project skill directories, while repo metadata continues to skip directory symlinks.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
a484e3f to
077d252
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR moves project skill discovery onto RepoMetadataModel, adds ignored-path interests so gitignored skill provider paths can be represented in repo metadata, and updates skill watcher/utils tests for local, ignored, remote-path, and symlinked project skill cases.
Concerns
- No blocking correctness or security concerns found in the annotated diff.
- Spec context: no approved or repository spec context was available for this PR.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| } | ||
|
|
||
| // Subscribe to home directory skills via DirectoryWatcher. | ||
| // TODO: Migrate home/global skill watching onto RepoMetadataModel as well. |
There was a problem hiding this comment.
calling this out because i'm not doing this as part of this PR but we'll eventually want to migrate global skills as well
| } else { | ||
| RepoMetadataModel::new(ctx) | ||
| }; | ||
| model.register_ignored_path_interests( |
There was a problem hiding this comment.
hm this does have the side effect of gitignored skills directories showing up in the file tree which i think we don't want. working on a fix now
There was a problem hiding this comment.
discussed this a bit with aloke. we're going to still directly register the gitignored skills subtrees. there shouldn't be significant performance concerns to doing this since skill directories are relatively contained in size + there shouldn't be changes in product behavior
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
Co-Authored-By: Oz <oz-agent@warp.dev>
There was a problem hiding this comment.
Overview
This PR moves project skill discovery onto RepoMetadataModel, registers skill provider paths as ignored-path interests, and keeps a local filesystem fallback for metadata failures. The main correctness path is covered by added tests, and I did not find security issues in the changed diff.
Concerns
- The metadata-failure fallback scans and parses the repository synchronously on the model context, which can block the app exactly for the large repos this fallback is meant to support.
- The same fallback scan skips symlinked skill directories during its initial pass, so existing symlink-backed project skills can remain unavailable until a later filesystem event occurs.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
565ce4b to
809eb44
Compare
| } | ||
|
|
||
| // Queue project directory creations for later processing since the file tree is not yet updated | ||
| self.queued_project_directory_creations |
There was a problem hiding this comment.
Is this no longer needed because repo metadata will fire events after the tree is updated?
peicodes
left a comment
There was a problem hiding this comment.
The approach LGTM. My general concerns with skill changes are:
- Reading skills synchronously
- Race conditions between reading skills and surfacing them in
SkillManager
Neither seems to apply here so I think we're good?
Co-Authored-By: Oz <oz-agent@warp.dev>

Description
Migrates local project skills away from
ProjectSkillSubscriberin the normal indexed-repository path and instead discovers project skill files throughRepoMetadataModel. Gitignored skills subtrees are deliberately added toRepoMetadataModelIf local repository metadata indexing fails (for example, when a repository is too large to index), the existing local project-skill watcher fallback remains available.
Testing
Added unit tests + locally tested
Screenshots / Videos
Regular skills
https://github.com/user-attachments/assets/ce2f6abf-ecf6-4f77-8848-313b41b0a3d7
Agent Mode
Co-Authored-By: Oz oz-agent@warp.dev